<?php
/**
 * 单号
 * (model)
 */
namespace App\Util;
use Illuminate\Support\Facades\DB;

class SerialNo
{

    private static function getSerialNo($sPrefix)
    {
        $re = DB::select('call GetSerialNo(?,?)', [$sPrefix,'']);
        return $re[0]->result;
    }

    /**
     * 备货单号
     * @return mixed
     */
    public static function getBhNo(){
        return self::getSerialNo('BHD');
    }

    /**
     * 采购单号
     * @return mixed
     */
    public static function getCGNo(){
        return self::getSerialNo('CGD');
    }

    /**
     * 提货单号
     * @return mixed
     */
    public static function getThNo(){
        return self::getSerialNo('THD');
    }

    /**
     * 刷单费用提报单号
     * @return mixed
     */
    public static function getBrNo(){
        return self::getSerialNo('BRD');
    }

    /**
     * 付款申请单号
     * @return mixed
     */
    public static function getFANo(){
        return self::getSerialNo('FAD');
    }

    /**
     * 返款申请提报单号
     * @return mixed
     */
    public static function getRaNo(){
        return self::getSerialNo('RAD');
    }

    /**
     * 入库单号
     * @return mixed
     */
    public static function getRsNo(){
        return self::getSerialNo('GRN');
    }

    /**
     * 出库单号
     * @return mixed
     */
    public static function getPlNo(){
        return self::getSerialNo('PLD');
    }

    /**
     * 出人库记录单号
     * @return mixed
     */
    public static function getRcNo(){
        return self::getSerialNo('RCD');
    }

    /**
     * 客户编码
     * @param string $type UNG|ORG
     * @return mixed
     */
    public static function getUngNo($type = 'UNG'){
        return self::getSerialNo($type);
    }

    /**
     * 工单号
     * @return mixed
     */
    public static function getWlNo(){
        return self::getSerialNo('WLD');
    }

    /**
     * CN至海外仓发货单（国内发往海外仓）
     * @return mixed
     */
    public static function getOSDNo(){
        return self::getSerialNo('OSD');
    }

    /**
     * 海外仓出仓发货单
     * @return mixed
     */
    public static function getOSPNo(){
        return self::getSerialNo('OSP');
    }

    /**
     * 客户订单发货（FBA仓，发货单号）
     * @return mixed
     */
    public static function getOSANo(){
        return self::getSerialNo('OSA');
    }

    /**
     * 客户订单发货（海外仓，发货单号）
     * @return mixed
     */
    public static function getOOSNo(){
        return self::getSerialNo('OOS');
    }

    /**
     * 客户订单发货(国内仓，发货单号)
     * @return mixed
     */
    public static function getOPDNo(){
        return self::getSerialNo('OPD');
    }

    /**
     * 客户订单/ERP自建订单号（手工/批量录入）
     * @return mixed
     */
    public static function getOCnNo(){
        return self::getSerialNo('OCN');
    }

    /**
     * 备货申请单号
     * @return mixed
     */
    public static function getStockupApplyNo(){
        return self::getSerialNo('SAN');
    }

    /**
     * 物流申请单
     * @return mixed
     */
    public static function getMaterialApplyNo(){
        return self::getSerialNo('MAN');
    }
}
